Skip to content

sima0_14_003: Update MPAS dynamical core to version 8.4.0#495

Merged
kuanchihwang merged 13 commits into
ESCOMP:developmentfrom
kuanchihwang:staging/mpas-dycore-8.4.0
Jun 5, 2026
Merged

sima0_14_003: Update MPAS dynamical core to version 8.4.0#495
kuanchihwang merged 13 commits into
ESCOMP:developmentfrom
kuanchihwang:staging/mpas-dycore-8.4.0

Conversation

@kuanchihwang

@kuanchihwang kuanchihwang commented Apr 24, 2026

Copy link
Copy Markdown
Collaborator

Tag name (required for release branches)

sima0_14_003

Originator(s)

kuanchihwang

Description (include the issue title, and the keyword ['closes', 'fixes', 'resolves'] followed by the issue number)

This PR updates MPAS dynamical core from version 8.3.1 to 8.4.0. See the release notes for details.

Notably, the new Large Eddy Simulation (LES) capability in MPAS is experimentally supported under CAM-SIMA, at the price of increased complexity in constituent handling. However, due to the object-oriented design of MPAS subdriver, this complexity is entirely contained within the subdriver layer and does not affect other parts of CAM-SIMA. This capability is disabled by default, and can be enabled manually through namelist options.

A future PR is planned to refactor the dyn_mpas_define_scalar subroutine in MPAS subdriver to keep its complexity and scope in check.

Describe any changes made to the build system

src/dynamics/mpas/assets/Makefile.in.CESM has been modified to suppress harmless but potentially confusing errors in build logs.

Describe any changes made to the namelist

  • mpas_epssm

This namelist option has been deprecated and set to 0.0. Setting it to any values other than 0.0 triggers a compatibility warning.

  • mpas_epssm_maximum, mpas_epssm_minimum, mpas_epssm_transition_bottom_z, mpas_epssm_transition_top_z

These new namelist options provide more fine-grained control on the off-centering parameter for the vertically implicit acoustic integration.

  • mpas_gpu_aware_mpi

Whether to use GPU-aware MPI for halo exchanges.

  • mpas_les_model, mpas_les_surface, mpas_mix_scalars, mpas_surface_drag_coefficient, mpas_surface_heat_flux, mpas_surface_moisture_flux

These new namelist options control the new LES capability in MPAS.

List any changes to the defaults for the input datasets (e.g., boundary datasets)

None

List all files eliminated and why

None

List all files added and what they do

A       src/dynamics/mpas/assets/0001-Fix-Fortran-standard-violation.patch
A       src/dynamics/mpas/assets/0002-Add-missing-argument-intent.patch
A       src/dynamics/mpas/assets/0003-Avoid-implicit-save-attribute.patch
  * Add patches to fix crash in MPAS 8.4.0

List all existing files that have been modified, and describe the changes

M       .gitmodules
M       src/dynamics/mpas/dycore
  * Update MPAS dynamical core to version 8.4.0
M       src/dynamics/mpas/assets/generate_namelist_definition.py
M       src/dynamics/mpas/namelist_definition_mpas_dycore.xml
  * Update namelist definition file and script for MPAS dynamical core
M       src/dynamics/mpas/assets/Makefile.in.CESM
  * Suppress harmless errors in build logs
M       src/dynamics/mpas/driver/dyn_mpas_subdriver.F90
  * Remove deprecated variables that no longer exist
  * Rework constituent handling in MPAS subdriver to support new LES capability

Regression tests

  • derecho/aux_sima_gnu
SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 (Overall: DIFF) details:
  FAIL SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 NLCOMP
  FAIL SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_gnu: DIFF
SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 (Overall: DIFF) details:
  FAIL SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 NLCOMP
  FAIL SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_gnu.cam-outfrq_analy_ic_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_gnu: DIFF
SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_gnu.cam-outfrq_kessler_mpas_derecho (Overall: DIFF) details:
  FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_gnu.cam-outfrq_kessler_mpas_derecho NLCOMP
  FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_gnu.cam-outfrq_kessler_mpas_derecho BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_gnu: DIFF
SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_gnu.cam-outfrq_kessler_mpas_derecho_history (Overall: DIFF) details:
  FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_gnu.cam-outfrq_kessler_mpas_derecho_history NLCOMP
  FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_gnu.cam-outfrq_kessler_mpas_derecho_history BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_gnu: DIFF

Expected answer changes due to MPAS version update.

SMS_Ln9.ne3pg3_ne3pg3_mg37.FADIAB.derecho_gnu.cam-outfrq_se_cslam (Overall: FAIL) details:
  FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FADIAB.derecho_gnu.cam-outfrq_se_cslam RUN time=9

Known failing test.

  • derecho/aux_sima_intel
SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 (Overall: DIFF) details:
  FAIL SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 NLCOMP
  FAIL SMS_D_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_intel: DIFF
SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 (Overall: DIFF) details:
  FAIL SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 NLCOMP
  FAIL SMS_Ln9.mpasa120_mpasa120.QPC4.derecho_intel.cam-outfrq_analy_ic_cam4 BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_intel: DIFF
SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_intel.cam-outfrq_kessler_mpas_derecho (Overall: DIFF) details:
  FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_intel.cam-outfrq_kessler_mpas_derecho NLCOMP
  FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_intel.cam-outfrq_kessler_mpas_derecho BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_intel: DIFF
SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_intel.cam-outfrq_kessler_mpas_derecho_history (Overall: DIFF) details:
  FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_intel.cam-outfrq_kessler_mpas_derecho_history NLCOMP
  FAIL SMS_Ln9.mpasa480_mpasa480.FKESSLER.derecho_intel.cam-outfrq_kessler_mpas_derecho_history BASELINE /glade/campaign/cesm/community/amwg/sima_baselines/latest_intel: DIFF

Expected answer changes due to MPAS version update.

SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam_multitape (Overall: NLFAIL) details:
  FAIL SMS_Ln9.ne3pg3_ne3pg3_mg37.FKESSLER.derecho_intel.cam-outfrq_se_cslam_multitape NLCOMP

Known failing test.

  • derecho/aux_sima_nvhpc

Pass.

@kuanchihwang
kuanchihwang temporarily deployed to CI-tests-on-CIRRUS April 24, 2026 19:09 — with GitHub Actions Inactive
@kuanchihwang
kuanchihwang marked this pull request as ready for review April 24, 2026 19:17
@kuanchihwang
kuanchihwang requested review from mgduda and nusbaume April 24, 2026 19:19
@kuanchihwang
kuanchihwang temporarily deployed to CI-tests-on-CIRRUS May 1, 2026 20:01 — with GitHub Actions Inactive

@nusbaume nusbaume left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for bringing in the latest version of MPAS @kuanchihwang! I have a question, an optional clean-up request, and some requests to eventually provide some unit labels for MPAS namelist entries, but nothing that is strictly required for this particular PR.

Of course if you have any questions or concerns with any of my requests then just let me know. Thanks again!

Comment thread src/dynamics/mpas/assets/0001-Fix-Fortran-standard-violation.patch
Comment thread src/dynamics/mpas/driver/dyn_mpas_subdriver.F90 Outdated
Comment thread src/dynamics/mpas/driver/dyn_mpas_subdriver.F90 Outdated
Comment thread src/dynamics/mpas/namelist_definition_mpas_dycore.xml
Comment thread src/dynamics/mpas/namelist_definition_mpas_dycore.xml
Comment thread src/dynamics/mpas/namelist_definition_mpas_dycore.xml
Comment thread src/dynamics/mpas/namelist_definition_mpas_dycore.xml
Comment thread src/dynamics/mpas/namelist_definition_mpas_dycore.xml
$ python3 generate_namelist_definition.py -r <path-to>/Registry.xml -n <path-to>/namelist_definition_mpas_dycore.xml -s <path-to>/entry_id_pg.xsd
Generated <path-to>/namelist_definition_mpas_dycore.xml
Successfully validated <path-to>/namelist_definition_mpas_dycore.xml against <path-to>/entry_id_pg.xsd
@kuanchihwang
kuanchihwang temporarily deployed to CI-tests-on-CIRRUS May 19, 2026 01:42 — with GitHub Actions Inactive
@nusbaume
nusbaume requested a review from peverwhee June 1, 2026 17:20
@kuanchihwang
kuanchihwang temporarily deployed to CI-tests-on-CIRRUS June 1, 2026 17:31 — with GitHub Actions Inactive
@kuanchihwang kuanchihwang changed the title Update MPAS dynamical core to version 8.4.0 sima0_14_003: Update MPAS dynamical core to version 8.4.0 Jun 4, 2026
@kuanchihwang
kuanchihwang temporarily deployed to CI-tests-on-CIRRUS June 5, 2026 18:43 — with GitHub Actions Inactive
@kuanchihwang
kuanchihwang merged commit cb52c4d into ESCOMP:development Jun 5, 2026
23 checks passed
@kuanchihwang
kuanchihwang deleted the staging/mpas-dycore-8.4.0 branch June 5, 2026 19:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants